package com.scud.product.mapper;

import com.scud.model.product.dto.AuditPageDto;
import com.scud.model.product.dto.ManagePageDto;
import com.scud.model.product.dto.ProductPageDto;
import com.scud.model.product.pojo.Product;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ProductMapper {

    Long countByCategory(ProductPageDto productPageDto);

    List<Product> listByCategory(ProductPageDto productPageDto);

    //获取商品总数
    Long count();

    //根据商品id查询商品信息
    Product selectById(Long id);

    List<Product> getNew();

    //根据条件查询商品
    List<Product> selectByQuery(ProductPageDto dto);

    Product getById(Long id);

    //根据用户id查询商品总数
    Long countByUserId(Long id);

    //根据用户id和查询条件查询商品数据
    List<Product> selectByUserIdQuery(ManagePageDto dto, Long userId);

    //修改product
    void update(Product product);

    //新增商品数据，并返回添加的值
    void insert(Product product);

    //根据id删除商品信息
    void deleteById(Long id);

    //修改商品的状态
    void updateStatus(Long productId, Short status);

    //根据审核条件查询数据
    List<Product> selectByAuditQuery(AuditPageDto dto);

    //当前审核员所需要审核的作品总数
    Long countAudit(AuditPageDto dto);
}
